#ifndef VSqlDataMap_H
#define VSqlDataMap_H

#include "VSqlData.h"
#include "VSqlMetaMap.h"

///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////

class VSqlDataMap
{
public:
	VSqlDataMap(VSqlMetaMap *metaMap) :m_metaMap(metaMap),m_dataEmpty(metaMap->db()) {}
	~VSqlDataMap() { clear();}

	VSqlMetaMap *metaMap() const { m_metaMap;}

	void clear() { qDeleteAll(m_dataMap); m_dataMap.clear();}
	VSqlData *dataPtr_byMetaTable(const VSqlMeta &metaTable,const QList<VSqlMeta> &metaFieldList = QList<VSqlMeta>());
	
private:
	VSqlMetaMap *m_metaMap;
	QMap<quint64,VSqlData*> m_dataMap;
	VSqlData m_dataEmpty;
};

///////////////////////////////////////////////////////////////////////////////

#endif
